'use strict';
module.exports = {
	/**
	 * 查询账本
	 * @url client/accountbook/kh/enqrAccountBook 前端调用的url参数地址
	 * data 请求参数
	 * @params {String} accountBookName  账本名称
	 * @params {String} accountType  账本类型
	 * @params {String} remarks  账本说明
	 */
	main: async (event) => {
		let { data = {}, userInfo, util, originalParam } = event;
		let { customUtil, config, pubFun, vk, db, _ } = util;
		let { uid,addAccountBook } = data && data;
		let res = { code : 0, msg : '查询成功' };
		// 业务逻辑开始-----------------------------------------------------------
		let {pagination} = data
		const rtnData = await vk.baseDao.selects({
		  dbName: "db-user-relation-book",// 主表名
		  getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
		  getMain:false,// 是否只返回rows数据，默认false
		  pageIndex: pagination.pageIndex, // 查询第几页
		  pageSize: pagination.pageSize, // 每页多少条数据
		  // 主表where条件
		  whereJson: {
			uid: _.eq(uid)
		  },
		  // 主表字段显示规则
		  fieldJson: {
		    token: false,
		    password: false,
		  },
		  // 主表排序规则
		  sortArr: [{ "name": "createTime","type": "asc" }],
		  // 副表列表
		  foreignDB: [
		    {
		      dbName: "db-account-book", // 副表名
		      localKey:"bookId", // 主表外键字段名
		      foreignKey: "_id", // 副表外键字段名
		      as: "bookList",
		      limit: 10, // 当limit = 1时，以对象形式返回，否则以数组形式返回
		      // 副表where条件
		      whereJson: {
			  },
		      // 副表字段显示规则
		      fieldJson: {},
		      // 副表排序规则
		      sortArr: [{ "name": "createTime","type": "asc" }],
		    }
		  ]
		});
		console.log("rtnData",rtnData)
		if (rtnData && rtnData.code == 0 && rtnData.rows && rtnData.rows.length > 0) {
			let respData = [];
			let count = 0;
			for (const item of rtnData.rows) {
				if(item.bookList && item.bookList.length > 0) {
					// 判断是否自己创建的账本
					if (item.uid === uid) {
						respData[count] = item.bookList[0]
						count++;
					}
					// 判断是否是受邀请的共享账本
					else if (item.accountType === "2" || item.accountType === 2) {
						respData[count] = item.bookList[0]
						count++;
					}
				}
			}
			rtnData.data = respData;
			res.data = rtnData;
		}
		else {
			res.data = null;
		}
		
		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}
